home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 2 / Gekikoh Dennoh Club Vol. 2 (Japan).7z / Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin / tools / ldbmp08 / ldbmp08s.lzh / PAGESYNC.S < prev    next >
Text File  |  1996-01-26  |  1KB  |  72 lines

  1.     .include    doscall.mac
  2.     .include    iocscall.mac
  3.     .include    myconst.h
  4.  
  5.     .xdef    _Wait
  6.     .xdef    _PageSync
  7.  
  8. _PageSync:
  9.     movem.l    d0-d7/a1-a2,-(sp)
  10.  
  11.     movea.l    #$e82600,a1    *videoc
  12.     movea.l    #$e88001,a2    *mfp
  13.  
  14.     move.w    (a1),d0
  15.     andi.w    #$fff0,d0
  16.     move.w    d0,d1
  17.     ori.w    #3,d1        *page 0
  18.     move.w    d0,d2
  19.     ori.w    #$c,d2        *page 1
  20.     move.w    d0,d6
  21.     ori.w    #$f,d6        *page 0&1
  22.  
  23.     move.b    #4,d3        *v_disp bit
  24.     move.b    #7,d4        *h_sync bit
  25.  
  26.     move.w    sr,d5
  27.     ori.w    #$0700,sr    *割り込み禁止
  28.     move.w    _Wait,d7
  29. v_wait:
  30.     btst.b    d3,(a2)
  31.     beq    v_wait        *垂直表示期間を待つ
  32. h_wait00:
  33.     btst.b    d4,(a2)
  34.     beq    h_wait00    *水平帰線期間を待つ
  35. h_wait0:
  36.     btst.b    d4,(a2)
  37.     bne    h_wait0        *水平表示期間を待つ
  38.  
  39. loopy:
  40.     move.w    d7,d0
  41. wait:
  42.     dbra    d0,wait        *切り替えのタイミングを待つ
  43.  
  44.     move.w    d6,(a1)
  45.     move.w    d2,(a1)        *page1に切り替える
  46. h_wait:
  47.     btst.b    d4,(a2)
  48.     beq    h_wait        *水辺帰線期間を待つ
  49.  
  50.     move.w    d1,(a1)        *page0に切り替える
  51.  
  52.     btst.b    d3,(a2)
  53.     beq    quit        *表示期間が終わっていれば終了
  54. h_wait2:
  55.     btst.b    d4,(a2)
  56.     bne    h_wait2        *水平表示期間を待つ
  57.  
  58.     bra    loopy
  59. quit:
  60.     move.w    d5,sr
  61.  
  62.     movem.l    (sp)+,d0-d7/a1-a2
  63.     rts
  64.  
  65.     .data
  66.     .even
  67.  
  68. _Wait:
  69.     .dc.w    7
  70.  
  71.     .end
  72.